The main program coordinates
calls to procedures in separate modules and hands over appropriate data as parameters.
With modular
programming procedures of a common functionality are grouped together into
separate modules. A program therefore no longer consists of only one
single part. It is now divided into several smaller parts which interact
through procedure calls and which form the whole program.
Each module can
have its own data. This allows each module to manage an internal state
which is modified by calls to procedures of this module. However, there is
only one state per module and each module exists at most once in the whole
program.